package com.xbts.screen.service;

import com.xbts.common.core.web.domain.BaseHistogramResult;
import com.xbts.common.core.web.domain.BasePieChartResult;
import com.xbts.screen.domain.workshop.dto.CommonQueryDTO;
import com.xbts.screen.domain.workshop.dto.ConsumeMeterDataDTO;
import com.xbts.screen.domain.workshop.vo.*;

import java.util.List;
import java.util.Map;

/**
 * 车间公共Service接口
 */
public interface IWorkshopCommonService {

    /**
     * 实时统计
     */
    RealTimeAchievementRateVO realTimeAchievementRate(CommonQueryDTO dto);
    /**
     * 近10天达成率
     */
    BaseHistogramResult tenDaysAchievementRate(CommonQueryDTO dto);
    /**
     * 达成率根据时间分组
     */
    StatisticalRateGroupByTimeVO achievementRateGroupByTimeType(CommonQueryDTO dto);
    /**
     * 水单耗
     */
    BaseHistogramResult waterUnitConsume(CommonQueryDTO dto);
    /**
     * 电单耗
     */
    BaseHistogramResult electricityUnitConsume(CommonQueryDTO dto);

    Map<String, String> unitConsume(ConsumeMeterDataDTO dto);
    Map<String, String> totalConsume(ConsumeMeterDataDTO dto);
    /**
     * 排产计划
     */
    List<ProductionScheduleVO> productionSchedule(CommonQueryDTO dto);
    /**
     * 周转率
     */
    BaseHistogramResult turnoverRate(CommonQueryDTO dto);
    /**
     * 周转率根据时间类型分组
     */
    StatisticalRateGroupByTimeVO turnoverRateGroupByTimeType(CommonQueryDTO dto);
    /**
     * 抽检合格率
     */
    RealTimeAchievementRateVO samplingPassRate();
    /**
     * 抽检合格率趋势
     */
    SamplingPassRateTrendVO samplingPassRateTrend();
    /**
     * 抽检不良统计
     */
    List<BasePieChartResult> samplingBadStatistics();
    /**
     * 全检合格率
     */
    RealTimeAchievementRateVO inspectionPassRate();
    /**
     * 全检合格率趋势
     */
    BaseHistogramResult inspectionPassRateTrend();
    /**
     * 全检不良统计
     */
    List<BasePieChartResult> inspectionBadStatistics();
    /**
     * PCS_报废合格率
     */
    RealTimeAchievementRateVO PCS_scrapPassRate();
    /**
     * PCS_报废统计
     */
    List<BasePieChartResult> PCS_scrapStatistics();
    /**
     * 料号批次合格率记录
     */
    List<PassRateRecordVO> passRateRecord(CommonQueryDTO dto);
    /**
     * 前5大不良统计
     */
    List<BasePieChartResult> badStatistics(CommonQueryDTO dto);
    /**
     * 前5大报废统计
     */
    List<BasePieChartResult> scrapStatistics(CommonQueryDTO dto);
    /**
     * 合格率
     */
    PassRateVO passRate(CommonQueryDTO dto);
    /**
     * 报废率
     */
    ScrapRateVO scrapRate(CommonQueryDTO dto);
    /**
     * 合格率趋势图
     */
    BaseHistogramResult passRateTrend(CommonQueryDTO dto);

    /**
     * 获取饼图数据
     */
    List<BasePieChartResult> getBasePieChartResults(List<BasePieChartResult> resultList);

    /**
     * 获取车间产出及水电单耗目标
     */
    List<ConsumeDetailsVO> consumeDetailsByDateType(CommonQueryDTO dto);

    /**
     * 获取车间水表 电表 读数
     */
    List<ConsumeMeterDataVO> getConsumeMeterData(ConsumeMeterDataDTO dto);
}
